package com.bsg.upm.dto;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;

/**
 * 工单数据传输对象
 * 
 * @author HCK
 *
 */
public class OrderDto extends BaseDto implements Serializable {

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;

	/**
	 * 工单服务类型
	 */
	private String servTypeName;

	/**
	 * 区域编码
	 */
	private String areaId;

	/**
	 * 区域名称
	 */
	private String areaName;

	/**
	 * 业务系统代码
	 */
	private String businessSystemId;

	/**
	 * 业务系统名称
	 */
	private String businessSystemName;

	/**
	 * 业务子系统代码
	 */
	private String businessSubSystemId;

	/**
	 * 业务子系统名称
	 */
	private String businessSubSystemName;

	/**
	 * 服务名称
	 */
	private String servName;

	/**
	 * 所属者
	 */
	private String owner;

	/**
	 * 工单类型
	 */
	private String type;

	/**
	 * 是否为分片结构
	 */
	private Boolean sharding;

	/**
	 * 状态
	 */
	private String status;

	/**
	 * 状态表示
	 */
	private String statusText;

	/**
	 * 子工单
	 */
	private List<SubOrderDto> subOrders = new ArrayList<>();

	/**
	 * 关联工单
	 */
	private OrderDto associateOrder;

	/**
	 * 获取工单服务类型
	 * 
	 * @return servTypeName 工单服务类型
	 */
	public String getServTypeName() {
		return servTypeName;
	}

	/**
	 * 设置工单服务类型
	 * 
	 * @param servTypeName
	 *            工单服务类型
	 */
	public void setServTypeName(String servTypeName) {
		this.servTypeName = servTypeName;
	}

	/**
	 * 获取区域编码
	 * 
	 * @return areaId 区域编码
	 */
	public String getAreaId() {
		return areaId;
	}

	/**
	 * 设置区域编码
	 * 
	 * @param areaId
	 *            区域编码
	 */
	public void setAreaId(String areaId) {
		this.areaId = areaId;
	}

	/**
	 * 获取区域名称
	 * 
	 * @return areaName 区域名称
	 */
	public String getAreaName() {
		return areaName;
	}

	/**
	 * 设置区域名称
	 * 
	 * @param areaName
	 *            区域名称
	 */
	public void setAreaName(String areaName) {
		this.areaName = areaName;
	}

	/**
	 * 获取业务系统代码
	 * 
	 * @return businessSystemId 业务系统代码
	 */
	public String getBusinessSystemId() {
		return businessSystemId;
	}

	/**
	 * 设置业务系统代码
	 * 
	 * @param businessSystemId
	 *            业务系统代码
	 */
	public void setBusinessSystemId(String businessSystemId) {
		this.businessSystemId = businessSystemId;
	}

	/**
	 * 获取业务系统名称
	 * 
	 * @return businessSystemName 业务系统名称
	 */
	public String getBusinessSystemName() {
		return businessSystemName;
	}

	/**
	 * 设置业务系统名称
	 * 
	 * @param businessSystemName
	 *            业务系统名称
	 */
	public void setBusinessSystemName(String businessSystemName) {
		this.businessSystemName = businessSystemName;
	}

	/**
	 * 获取业务子系统代码
	 * 
	 * @return businessSubSystemId 业务子系统代码
	 */
	public String getBusinessSubSystemId() {
		return businessSubSystemId;
	}

	/**
	 * 设置业务子系统代码
	 * 
	 * @param businessSubSystemId
	 *            业务子系统代码
	 */
	public void setBusinessSubSystemId(String businessSubSystemId) {
		this.businessSubSystemId = businessSubSystemId;
	}

	/**
	 * 获取业务子系统名称
	 * 
	 * @return businessSubSystemName 业务子系统名称
	 */
	public String getBusinessSubSystemName() {
		return businessSubSystemName;
	}

	/**
	 * 设置业务子系统名称
	 * 
	 * @param businessSubSystemName
	 *            业务子系统名称
	 */
	public void setBusinessSubSystemName(String businessSubSystemName) {
		this.businessSubSystemName = businessSubSystemName;
	}

	/**
	 * 获取服务名称
	 * 
	 * @return servName 服务名称
	 */
	public String getServName() {
		return servName;
	}

	/**
	 * 设置服务名称
	 * 
	 * @param servName
	 *            服务名称
	 */
	public void setServName(String servName) {
		this.servName = servName;
	}

	/**
	 * 获取所属者
	 * 
	 * @return owner 所属者
	 */
	public String getOwner() {
		return owner;
	}

	/**
	 * 设置所属者
	 * 
	 * @param owner
	 *            所属者
	 */
	public void setOwner(String owner) {
		this.owner = owner;
	}

	/**
	 * 获取工单类型
	 * 
	 * @return type 工单类型
	 */
	public String getType() {
		return type;
	}

	/**
	 * 设置工单类型
	 * 
	 * @param type
	 *            工单类型
	 */
	public void setType(String type) {
		this.type = type;
	}

	/**
	 * 获取是否为分片结构
	 * 
	 * @return sharding 是否为分片结构
	 */
	public Boolean getSharding() {
		return sharding;
	}

	/**
	 * 设置是否为分片结构
	 * 
	 * @param sharding
	 *            是否为分片结构
	 */
	public void setSharding(Boolean sharding) {
		this.sharding = sharding;
	}

	/**
	 * 获取状态
	 * 
	 * @return status 状态
	 */
	public String getStatus() {
		return status;
	}

	/**
	 * 设置状态
	 * 
	 * @param status
	 *            状态
	 */
	public void setStatus(String status) {
		this.status = status;
	}

	/**
	 * 获取状态表示
	 * 
	 * @return statusText 状态表示
	 */
	public String getStatusText() {
		return statusText;
	}

	/**
	 * 设置状态表示
	 * 
	 * @param statusText
	 *            状态表示
	 */
	public void setStatusText(String statusText) {
		this.statusText = statusText;
	}

	/**
	 * 获取子工单
	 * 
	 * @return subOrders 子工单
	 */
	public List<SubOrderDto> getSubOrders() {
		return subOrders;
	}

	/**
	 * 设置子工单
	 * 
	 * @param subOrders
	 *            子工单
	 */
	public void setSubOrders(List<SubOrderDto> subOrders) {
		this.subOrders = subOrders;
	}

	/**
	 * 获取关联工单
	 * 
	 * @return associateOrder 关联工单
	 */
	public OrderDto getAssociateOrder() {
		return associateOrder;
	}

	/**
	 * 设置关联工单
	 * 
	 * @param associateOrder
	 *            关联工单
	 */
	public void setAssociateOrder(OrderDto associateOrder) {
		this.associateOrder = associateOrder;
	}

	/*
	 * (non-Javadoc)
	 * 
	 * @see java.lang.Object#toString()
	 */
	@Override
	public String toString() {
		return "OrderDto [servTypeName=" + servTypeName + ", areaId=" + areaId + ", areaName=" + areaName
				+ ", businessSystemId=" + businessSystemId + ", businessSystemName=" + businessSystemName
				+ ", businessSubSystemId=" + businessSubSystemId + ", businessSubSystemName=" + businessSubSystemName
				+ ", servName=" + servName + ", owner=" + owner + ", type=" + type + ", sharding=" + sharding
				+ ", status=" + status + ", statusText=" + statusText + ", subOrders=" + subOrders + ", associateOrder="
				+ associateOrder + "]";
	}

}
